package cn.com.hatech.blog.module.admin.article.service;

import cn.com.hatech.blog.module.admin.article.entity.Article;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * @projectName: hatech-blog
 * @package: cn.com.hatech.blog.module.admin.service
 * @className: IContentService
 * @author: xuruikai
 * @description: 文章内容业务层接口
 * @date: 2020/1/11 14:27
 * @version: 1.0
 */
public interface IArticleService extends IService<Article> {

    /**
     * 获取已发布文章分页列表
     *
     * @param page
     * @param limit
     * @return
     */
    IPage<Article> selectPublishContentPage(Integer page, Integer limit);

    /**
     * 查询分类/标签下的文章归档
     *
     * @param id    id
     * @param page  page
     * @param limit limit
     * @return ContentVo
     */
    IPage<Article> getArticles(String id, int page, int limit);


    /**
     * 根据关键字进行模糊查询
     *
     * @param keyword id
     * @param page    page
     * @param limit   limit
     * @return ContentVo
     */
    IPage<Article> getArticlesByKeyword(String keyword, int page, int limit);

    /**
     * 发布文章
     *
     * @param contents
     * @return
     */
    int publish(Article contents);


    /**
     * 编辑文章
     *
     * @param contents
     * @return
     */
    int updateArticle(Article contents);

    /**
     * 根据id获取文章
     *
     * @param id id
     * @return ContentVo
     */
    Article selectById(String id);


    /**
     * 根据id获取文章不包含点击数
     *
     * @param id id
     * @return ContentVo
     */
    Article selectByIdWithoutHit(String id);

    /**
     * 根据文章id删除
     *
     * @param cid
     * @return
     */
    int deleteById(String cid);

}
